package com.hengpeng.msls.util;
/**
 * <pre>
 * 分页工具类
 * </pre>
 * @author weiyuan
 * @version 1.0, 2015年7月6日
 */
public class PageUtil
{
	private int pageSize;// 每页显示的条数

	private int totalCount;// 总共的条数

	private int currentPage;// 当前页面

	public PageUtil(int pageSize, int totalCount, int currentPage)
	{
		this.pageSize = pageSize;
		this.totalCount = totalCount;
		setCurrentPage(currentPage);
	}

	public PageUtil(int pageSize, int totalCount)
	{
		this(pageSize, totalCount, 1);
	}

	/**
	 * <pre>
	 * 总页数
	 * </pre>
	 * @return
	 */
	public int getPageCount()
	{
		int size = totalCount / pageSize;// 总条数/每页显示的条数=总页数
		int mod = totalCount % pageSize;// 最后一页的条数
		if (mod != 0) {
			size++;
		}
		return totalCount == 0 ? 1 : size;
	}

	/**
	 * <pre>
	 * 包含，起始索引为0
	 * </pre>
	 * @return
	 */
	public int getFromIndex()
	{
		return (currentPage - 1) * pageSize;
	}

	/**
	 * <pre>
	 * 不包含
	 * </pre>
	 * @return
	 */
	public int getToIndex()
	{
		return Math.min(totalCount, currentPage * pageSize);
	}

	/**
	 * <pre>
	 * 得到当前页
	 * </pre>
	 * @return
	 */
	public int getCurrentPage()
	{
		return currentPage;
	}
	/**
	 * <pre>
	 * 设置当前页
	 * </pre>
	 * @param currentPage
	 */
	public void setCurrentPage(Integer currentPage)
	{
		int validPage = currentPage <= 0 || currentPage == null ? 1 : currentPage;
		validPage = validPage > getPageCount() ? getPageCount() : validPage;
		this.currentPage = validPage;
	}
	/**
	 * <pre>
	 * 得到每页显示的条数
	 * </pre>
	 * @return
	 */
	public int getPageSize()
	{
		return pageSize;
	}
	/**
	 * <pre>
	 * 设置每页显示的条数
	 * </pre>
	 * @param pageSize
	 */
	public void setPageSize(int pageSize)
	{
		this.pageSize = pageSize;
	}
	/**
	 * <pre>
	 * 得到总共的条数
	 * </pre>
	 * @return
	 */
	public int getTotalCount()
	{
		return totalCount;
	}
	/**
	 * <pre>
	 * 设置总共的条数
	 * </pre>
	 * @param recordCount
	 */
	public void setTotalCount(int totalCount)
	{
		this.totalCount = totalCount;
	}
}